package com.ccys.db.vo.app.callStandByScreen;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.math.BigDecimal;

/**
 * @program: WhiteCoat
 * @description: StepDoseMedications阶梯剂量药物的返回数据组装Vo
 * @author: ZhangJingCan
 * @create: 2024-01-24 11:45
 **/

@Data
public class StepDoseMedicationsMakeVo {

    /**
     * 处方数量
     */
    private BigDecimal quantity;

    /**
     * 处方价格
     */
    private BigDecimal price;

    /**
     * 金额
     */
    private BigDecimal amount;

    /**
     * 路线医生名称
     * product_id 关联product表再关联下方的
     */
    @JsonProperty("route_doctor_name")
    private String routeDoctorName;//用rd_id关联tbl_formulation_route_doctor

    /**
     * 路线患者名称
     * product_id 关联product表再关联下方的
     */
    @JsonProperty("route_patient_name")
    private String routePatientName;//用rp_id关联tbl_formulation_route_patient

    /**
     * 医生开药每次服用数量
     */
    @JsonProperty("UOM_quantity")
    private String UOMQuantity;

    /**
     * 配方名称
     * product_id 关联product表再关联下方的
     */
    @JsonProperty("formulation_name")
    private String formulationName;//用flId关联tbl_formulation查询name

    /**
     * 单位 tbl_booking_prescription表的prescription_unit  也就是id，tbl_unit_of_measurement 的id
     */
    private String unit;

    /**
     * 单位名称
     */
    @JsonProperty("unit_name")
    private String unitName;

    /**
     * 用药频率？ tbl_booking_prescription表里面
     */
    private String frequency;

    /**
     * 频率说明  PrescriptionFrequencyEnum枚举里面 //todo 后面出来之后取
     */
    @JsonProperty("frequency_description")
    private String frequencyDescription;

    /**
     * 期间？tbl_booking_prescription表里面 ,我们是integer类型，但是对方返回的是1.0带小数
     */
    private BigDecimal duration;


    /**
     * 持续时间单位 对方返回数字 1  tbl_booking_prescription表里面
     */
    @JsonProperty("duration_unit")
    private Integer durationUnit;

    /**
     * 持续时间单位名称 对方返回字符串："day(s)"
     * tbl_booking_prescription表里面的duration_unit值来判断给什么字符串
     */
    @JsonProperty("duration_unit_name")
    private String durationUnitName;

    /**
     * 单位剂型？ todo 保留字段名即可
     */
    @JsonProperty("unit_dosage_form")
    private String unitDosageForm;

    /**
     * 剂量 //todo 保留字段并且写死 值为 0
     */
    private Integer dosage = 0;

    /**
     * 剂量文本 todo 保留字段并且写死
     */
    @JsonProperty("dosage_text")
    private String dosageText = "DOSAGE";

    /**
     * tbl_booking_prescription 表的 quantity_fulfilled
     */
    @JsonProperty("quantity_fullfilled")
    private BigDecimal quantityFullfilled;

    /**
     * 类型,根据product表里面的type_id关联到product_type表，然后ifnull(type表的id,1)如果type存在则取type表的id，不存在设置为1
     */
    private Integer type;

    /**
     * tbl_booking_prescription表
     */
    @JsonProperty("step_dose")
    private String stepDose;

    /**
     * 是否显示处方？
     */
    @JsonProperty("prescription_is_show")
    private Boolean prescriptionIsShow;

    /**
     * 产品ID
     */
    @JsonProperty("product_id")
    private String productId;

    /**
     * 产品名称
     */
    @JsonProperty("product_name")
    private String productName;

    /**
     * 产品价格
     */
    @JsonProperty("product_price")
    private BigDecimal productPrice;

    /**
     * 是否受控？
     */
    @JsonProperty("is_controlled")
    private Boolean isControlled;

    /**
     * 是否是慢性疾病？
     */
    @JsonProperty("is_chronic")
    private Boolean isChronic;

    /**
     * 是否完成课程
     */
    @JsonProperty("take_complete_course")
    private Boolean takeCompleteCourse;

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否涵盖诊断？
     */
    @JsonProperty("is_covered_diagnosis")
    private Boolean isCoveredDiagnosis;

    /**
     * 涵盖诊断的正则表达式
     */
    @JsonProperty("covered_diagnosis_regex")
    private String coveredDiagnosisRegex;

    /**
     * 处方是否在排除列表中？
     */
    @JsonProperty("prescription_is_in_exclusion_list")
    private Integer prescriptionIsInExclusionList;

    /**
     * 涵盖诊断代码
     */
    @JsonProperty("covered_diagnosis_code")
    private String coveredDiagnosisCode;

}
